<html>
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  <title>
   主题：R-data中关于关系数据库的章节翻译，很粗糙，实在是抱歉，我会慢慢修改  | 数螺 | NAUT IDEA
  </title>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" rel="stylesheet"/>
  <link href="http://cdn.bootcss.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
  <style type="text/css">
   #xmain img {
                  max-width: 100%;
                  display: block;
                  margin-top: 10px;
                  margin-bottom: 10px;
                }

                #xmain p {
                    line-height:150%;
                    font-size: 16px;
                    margin-top: 20px;
                }

                #xmain h2 {
                    font-size: 24px;
                }

                #xmain h3 {
                    font-size: 20px;
                }

                #xmain h4 {
                    font-size: 18px;
                }


                .header {
	           background-color: #0099ff;
	           color: #ffffff;
	           margin-bottom: 20px;
	        }

	        .header p {
                  margin: 0px;
                  padding: 10px 0;
                  display: inline-block;  
                  vertical-align: middle;
                  font-size: 16px;
               }

               .header a {
                 color: white;
               }

              .header img {
                 height: 25px;
              }
  </style>
  <script src="http://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">
  </script>
  <script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript">
   MathJax.Hub.Config({elements: ["bbpress-forums"]});
  </script>
  <script src="http://nautstatic-10007657.file.myqcloud.com/static/css/readability.min.js" type="text/javascript">
  </script>
  <script type="text/javascript">
   $(document).ready(function() {
                 var loc = document.location;
                 var uri = {
                  spec: "http://cos.name/cn/topic/842/",
                  host: "http://cos.name",
                  prePath: "http://cos.name",
                  scheme: "http",
                  pathBase: "http://cos.name/"
                 };
    
                 var documentClone = document.cloneNode(true);
                 var article = new Readability(uri, documentClone).parse();
     
                 document.getElementById("xmain").innerHTML = article.content;
                });
  </script>
  <!-- 1466447849: Accept with keywords: (title(0.0):章节,我会,主题,中,关系数据库,论坛, topn(0.2):我会,帖子,子句,数据库系统,章节,管理系统,数据源,数据库,汇总,文档,交叉,版本,排序,数据,函数,字符,对象,结果,论坛,用户,数据表,关系数据库,关系,版主,顺序,密码,主题,字段,小写,电子表格).-->
 </head>
 <body class="topic bbpress single single-topic postid-842 single-author sidebar" onload="">
  <div class="header">
   <div class="container">
    <div class="row">
     <div class="col-xs-6 col-sm-6 text-left">
      <a href="/databee">
       <img src="http://nautidea-10007657.cos.myqcloud.com/logo_white.png"/>
      </a>
      <a href="/databee">
       <p>
        数螺
       </p>
      </a>
     </div>
     <div class="hidden-xs col-sm-6 text-right">
      <p>
       致力于数据科学的推广和知识传播
      </p>
     </div>
    </div>
   </div>
  </div>
  <div class="container text-center">
   <h1>
    主题：R-data中关于关系数据库的章节翻译，很粗糙，实在是抱歉，我会慢慢修改
   </h1>
  </div>
  <div class="container" id="xmain">
   <div class="hfeed site" id="page">
    <header class="site-header" id="masthead" role="banner">
     <div id="cos-logo">
      <a href="http://cos.name/cn">
       <img src="http://cos.name/cn/wp-content/themes/COS-forest/images/headers/cos-logo.png"/>
      </a>
     </div>
     <div class="navbar" id="navbar">
      <nav class="navigation main-navigation" id="site-navigation" role="navigation">
       <h3 class="menu-toggle">
        菜单
       </h3>
       <div class="menu-%e8%8f%9c%e5%8d%951-container">
        <ul class="nav-menu" id="menu-%e8%8f%9c%e5%8d%951">
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-407772" id="menu-item-407772">
          <a href="http://cos.name/cn/">
           论坛首页
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-407773" id="menu-item-407773">
          <a href="http://cos.name/cn/forums/">
           讨论区
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-407774" id="menu-item-407774">
          <a href="http://cos.name/cn/wp-login.php?action=register">
           注册
          </a>
         </li>
         <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-407819" id="menu-item-407819">
          <a href="http://cos.name/">
           主站
          </a>
         </li>
        </ul>
       </div>
      </nav>
      <!-- #site-navigation -->
     </div>
     <!-- #navbar -->
    </header>
    <!-- #masthead -->
    <div class="site-main" id="main">
     <div class="content-area" id="primary">
      <div class="site-content" id="content" role="main">
       <article class="post-842 topic type-topic status-publish hentry" id="post-842">
        <header class="entry-header">
         <h1 class="entry-title">
          R-data中关于关系数据库的章节翻译，很粗糙，实在是抱歉，我会慢慢修改
         </h1>
        </header>
        <!-- .entry-header -->
        <div class="entry-content">
         <div id="bbpress-forums">
          <div class="bbp-breadcrumb">
           <p>
            <a class="bbp-breadcrumb-home" href="http://cos.name/cn/">
             COS论坛 | 统计之都
            </a>
            <span class="bbp-breadcrumb-sep">
             ›
            </span>
            <a class="bbp-breadcrumb-root" href="http://cos.name/cn/forums/">
             讨论区
            </a>
            <span class="bbp-breadcrumb-sep">
             ›
            </span>
            <a class="bbp-breadcrumb-forum" href="http://cos.name/cn/forum/software/">
             软件应用
            </a>
            <span class="bbp-breadcrumb-sep">
             ›
            </span>
            <a class="bbp-breadcrumb-forum" href="http://cos.name/cn/forum/software/r-language/">
             S-Plus &amp; R语言
            </a>
            <span class="bbp-breadcrumb-sep">
             ›
            </span>
            <span class="bbp-breadcrumb-current">
             R-data中关于关系数据库的章节翻译，很粗糙，实在是抱歉，我会慢慢修改
            </span>
           </p>
          </div>
          <div class="bbp-template-notice info">
           <p class="bbp-topic-description">
            该主题包含 5 条回复，4个帖子，最后由
            <a class="bbp-author-avatar" href="http://cos.name/cn/profile/159/" rel="nofollow" title="查看张巍的档案">
             <img src="http://sdn.geekzu.org/avatar/e537f5509173e1f93434ceb7c956a13a?s=14&amp;d=monsterid&amp;r=g"/>
            </a>
            <a class="bbp-author-name" href="http://cos.name/cn/profile/159/" rel="nofollow" title="查看张巍的档案">
             张巍
            </a>
            在
            <a href="http://cos.name/cn/topic/842/#post-205514" title="回复：R-data中关于关系数据库的章节翻译，很粗糙，实在是抱歉，我会慢慢修改">
             9 年, 10 月 之前
            </a>
            更新。
           </p>
          </div>
          <div class="bbp-pagination">
           <div class="bbp-pagination-count">
            查看 6 个帖子 - 1 到 6（总计 6 个）
           </div>
           <div class="bbp-pagination-links">
           </div>
          </div>
          <ul class="forums bbp-replies" id="topic-842-replies">
           <li class="bbp-header">
            <div class="bbp-reply-author">
             作者
            </div>
            <!-- .bbp-reply-author -->
            <div class="bbp-reply-content">
             帖子
            </div>
            <!-- .bbp-reply-content -->
           </li>
           <!-- .bbp-header -->
           <li class="bbp-body">
            <div class="bbp-reply-header" id="post-842">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2006年8月3日 上午3:14
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/842/#post-842">
               1 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-842 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-842 bbp-reply-position-1 user-id-123 topic-author post-842 topic type-topic status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/123/" rel="nofollow" title="查看abel的档案">
               <img src="http://sdn.geekzu.org/avatar/60dea4c8a3f2115785ea7668a3654b2d?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/123/" rel="nofollow" title="查看abel的档案">
               abel
              </a>
              <br/>
              <div class="bbp-author-role">
               版主
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               不知道怎样上传文件，实在是抱歉。相对来说，我认为这章是最值得多看几遍的了。
              </p>
              <p>
               ######################################################
               <br/>
               ##  abel翻译R-data第四章的样例，供大家参考，希望获得大家的宝贵意见和建议！
               <br/>
               ##  同时就自己的理解做了一些注，希望起到抛砖引玉的作用。
               <br/>
               ##  本文档是基于R2.1.0的，可能和最新的版本有一些出入。
               <br/>
               ##  mailto:pkuabel@126.com
               <br/>
               ######################################################
              </p>
              <p>
               第四章 ： 关系型数据库
              </p>
              <p>
               4.1 为什么使用数据库
               <br/>
               R操作的数据类别是有限制的，因为R中所有数据都是存留在内存中的，在执行一个函数的过程中数据可能被生成好几份，R不适应操作大数据集。超过百兆的数据对象会导致R耗尽内存资源。
               <br/>
               R自身目前不容易支持数据获取。因为如果多个用户获取数据的时候，存在更新同一个数据，这样一个用户的操作对另外的用户就是不可见的了。
               <br/>
               R支持永久性数据，这样你可以把一个数据对象和一个任务的整个工作表保存，并用于随后的任务中，然而存储的数据是针对R的，不太容易被其他系统操作。
               <br/>
               数据库管理系统（DBMSs），尤其是关系型数据库管理系统 （RDBMSs）用来完成一下这些工作，其功能有如下方面：
               <br/>
               1、    提供读取大数据集中快速选取部分数据的功能
               <br/>
               2、    数据库中强大功能的汇总和交叉列表的功能
               <br/>
               3、    以比长方形格子模型的电子表格 和R数据库更加严格的方式保存数据
               <br/>
               4、    多用户并发存取数据，同时确保存取数据的安全约束
               <br/>
               5、    作为一个服务器维大范围的用户提供服务
               <br/>
               这样，DBMS可能使用统计工具提取10％的样本数据，生成交叉列表 从而得到一个多维的列联表，从一个数据库中可以依照分组提取数据组进行独立的分析等等。
              </p>
              <p>
               4.2 关系型数据库管理系统简介
               <br/>
               传统上，有大型（并且昂贵）的商业化的关系型数据库管理系统(Informix; Oracle;
               <br/>
               Sybase; IBM’s DB/2; Microsoft SQL Server on Windows)和学术的、小型系统的数据库系统(比如MySQL, PostgreSQL, Microsoft Access等)，前一类型极其强调数据的安全性。现在随着开源的PostgreSQL有了越来越高端的特点，以及“自由”版本的Informix，Oracle和Sybase在Linux上使用，这种界线正在变得模糊。
               <br/>
               同时还有其他常用的数据源类型，包括电子表格，非关系型数据库，乃至文本格式文件（可能是压缩的）。开放数据库接口（ODBC）是使用这些数据源的标准。其源于Windows (参考
               <a class="d4pbbc-url" href="http://www.microsoft.com/data/odbc/" rel="nofollow" target="_blank">
                http://www.microsoft.com/data/odbc/
               </a>
               )，也可以在Linux/Unix上实现。
               <br/>
               本章随后提及的包都提供了客户服务器数据库形式的服务。数据库可以驻留在本机也可以是远程（通常如此）设备上。有一个称为SQL（结构化查询语言，读为“sequel”参见Bowman等，1996和Kline and Kline，2001）接口语言的ISO标准（事实上有几个：SQL92是ISO/IEC 9075, 也称为ANSI X3.135-1992, 同时SQL99即将出台），数据库管理系统均不同程度的支持这个标准 。
              </p>
              <p>
               4.2.1 SQL查询
               <br/>
               R中诸多接口为通常的操作生成SQL，然而直接使用SQL需要复杂的操作。同城SQL使用大写字母拼写，但是很多用户发现在R接口函数中使用小写是方便的。
               <br/>
               关系型数据库管理系统以数据库中的数据表（或者关系）作为存储数据的方式，其非常类R中的数据框，它们都是由相同类型的列或者叫字段的组成（数值、字符、日期、货币等等），行或者叫记录的包含整条的观测值。
               <br/>
               SQL查询在关系型数据库中是相当普遍的操作。下面是一些典型的SELECT 查询语句：
              </p>
              <p>
               SELECT State, Murder FROM USArrests WHERE Rape &gt; 30 ORDER BY Murder
              </p>
              <p>
               SELECT t.sch, c.meanses, t.sex, t.achieve
               <br/>
               FROM student as t, school as c WHERE t.sch = c.id
              </p>
              <p>
               SELECT sex, COUNT(*) FROM student GROUP BY sex
              </p>
              <p>
               SELECT sch, AVG(sestat) FROM student GROUP BY sch LIMIT 10
              </p>
              <p>
               第一例是从R中已经被赋值到数据表中的数据框USArrests中选择两列，通过第三列来选择符合条件的数据，并且让结果排序。第二例完成了student和school两个数据表的连接，并且返回四列。第三里和第四例查询完成交叉表，返回频次和平均值（五个汇总函数是COUNT，SUM, MAX, MIN 和AVG，每个函数用于单独一列）。
               <br/>
               SELECT查询用FROM选择数据表，WHERE确定选取条件（多个条件的时候使用AND或者OR组成），使用ORDER BY对结果进行排序。和数据框不同，关系型数据库中的各行最好认为是没有顺序的，没有ORDER BY子句的时候，顺序是不确定的。可以对用逗号分割的多行进行排序（以字典顺序）。通过设置DESC在ORDER BY字段的后面可以反向排序。
               <br/>
               SELECT DISTINCT查询仅返相应数据表中回各各不同的行。
               <br/>
               GROUP BY子句通过准则来选择各组的行。如果指定了多列，则多维交叉分类被5个汇总函数进行汇总计算。HAVING子句允许通过汇总计算得到的值来选择包含或者不好某些行。
               <br/>
               如果SELECT中包含了ORDER BY子句会产生唯一的顺序，增加一个LIMIT子句可以选取（通过数值）连续一块数据的列。这对一次取回一个数据行块是有用的（当LIMIT子句用来优化查询的时候，除非顺序是唯一的，否则是不可靠的）。
               <br/>
               Kline和Kline (2001)讨论了SQL在SQL Server 2000 、Oracle、 MySQL和PostgreSQL中实现的具体细节。
               <br/>
               数据库中的数据可以保存为多种数据类型。数据类型是数据库管理系统指定的，不过SQL标准定义了许多类型，下列是广泛地被实现了的（通常不是通过SQL名称）：
              </p>
              <p>
               float(p)     实数，可选精度，通常称为实数或者双精度数
               <br/>
               integer    32位整数，通常称为整数
               <br/>
               smallint     16位整数
               <br/>
               character(n)        定长字符串，通常称为字符
               <br/>
               character varying(n)     变长字符串，通常称为变长字符，有255字符的限制
               <br/>
               Boolean             true或false，通常称为bool或者bit
               <br/>
               date             日历时间
               <br/>
               time             当日时间
               <br/>
               timestamp         日期时间
               <br/>
               和时区有关，有多种时间，以及多种日期时间。文本和bolb（表示大块文本和二进制数据）也被广泛的实现了。R接口包广泛地的为用户实现隐藏了数据类型转换的情况。
              </p>
              <p>
               4.3 R接口包
               <br/>
               在CRAN上有几个包可以让R和DBMSs进行通信。它们提供了不同层次的抽象。有一些提供了将整个数据框读入写出到数据库中。所有这些包中都有通过SQL查询语言的函数选取数据，读取结果分片（通常是不同组的行）或者整体作为数据框 。
               <br/>
               除了RODBC以外，其他所有的包都和一种DBMS相关，然而所有的操作都使用DBI包(
               <a class="d4pbbc-url" href="http://developer.r-project.org/db" rel="nofollow" target="_blank">
                http://developer.r-project.org/db
               </a>
               )作为统一的前端工具和各种作为终端工具的结合起来，其中开发最好的是RMySQL包。在CRAN中终端的包还有ROracle和RSQLite(和内置的数据库管理系统SQLite结合工作,
               <a class="d4pbbc-url" href="http://www.hwaci.com/sw/sqlite" rel="nofollow" target="_blank">
                http://www.hwaci.com/sw/sqlite
               </a>
               )
               <br/>
               较早的RmSQL和RPgSQL两个包当前在CRAN的开发领域已经终止了支持：BioConductor项目有一个RdbiPgSQL.PL.R (
               <a class="d4pbbc-url" href="http://www.joeconway.com/plr/" rel="nofollow" target="_blank">
                http://www.joeconway.com/plr/
               </a>
               )，是一个把R嵌入到PostgreSQL的项目。
               <br/>
               CRAN上的RMySQL包提供了和MySQL数据库系统的接口（参见
               <a class="d4pbbc-url" href="http://www.mysql.com" rel="nofollow" target="_blank">
                http://www.mysql.com
               </a>
               and Dubois, 2000.）。这里的表示适合0.5-0版：早期的版本会有本质上的差异。当前版本需要DBI包，这里的描述只需要做很小的改变就可以适用于其他包使用DBI的终端。
               <br/>
               从3.23.x版本以来，在GPL下，MySQL存在于Unix/Linux和Windows。MySQL是一个轻量级的数据库系统（其默认操作系统的系统文件是大小写敏感的，不同于Windows的情况）。RMySQL包在Linux和Windows下均可使用。
               <br/>
               dbDriver(“MySQL”)调用返回一个数据库连接管理对象，接着调用dbConnect函数打开数据库连接，随后可以使用泛型函数dbDisconnect来关闭数据库连接。相应的可以在ROracle 或 RSQLite中使用dbDriver("Oracle")或 dbDriver("SQLite")
               <br/>
               SQL查询的发送可以通过dbSendQuery或dbGetQuery函数来实现。dbGetQuery函数发送查询并取回结果保存为一个数据框。dbSendQuery函数则发送查询避过那发挥一个从DBIResult类继承而来的对象中，这个对象可以取回结果，随后可以使用dbClearResult函数删除结果。
               <br/>
               函数fetch用来取回查询中部分或者全部的行，生成一个列表。函数dbHasCompleted标识是否所有的行都被取回了，dbGetRowCount函数返回结果中的行数。
               <br/>
               在读出、写入和删除数据库中的表方面，都有方便的接口。dbReadTable和dbWriteTable函数从一个R的数据框中读写数据表，并把数据框的行名变为MySQL数据表中的row_names字段。
              </p>
              <p>
               &gt; library(RMySQL) # 加载DBI包
               <br/>
               ## 打开一个和MySQL的连接
               <br/>
               &gt; con &lt;-dbConnect(dbDriver("MySQL"), dbname = "test")
               <br/>
               ## 列出数据库中的数据表
               <br/>
               &gt; dbListTables(con)
               <br/>
               ## 载入一个数据框到数据库中，删除已有同名的数据表
               <br/>
               &gt; data(USArrests)
               <br/>
               &gt; dbWriteTable(con, "arrests", USArrests, overwrite = TRUE)
               <br/>
               TRUE
               <br/>
               &gt; dbListTables(con)
               <br/>
               [1] "arrests"
               <br/>
               ## 读取整个数据表
               <br/>
               &gt; dbReadTable(con, "arrests")
               <br/>
               Murder Assault UrbanPop Rape
               <br/>
               Alabama 13.2 236 58 21.2
               <br/>
               Alaska 10.0 263 48 44.5
               <br/>
               Arizona 8.1 294 80 31.0
               <br/>
               Arkansas 8.8 190 50 19.5
               <br/>
               …
               <br/>
               ## 选择加载过的数据表
               <br/>
               &gt; dbGetQuery(con, paste("select row_names, Murder from arrests",
               <br/>
               "where Rape &gt; 30 order by Murder"))
               <br/>
               row_names Murder
               <br/>
               1 Colorado 7.9
               <br/>
               2 Arizona 8.1
               <br/>
               3 California 9.0
               <br/>
               4 Alaska 10.0
               <br/>
               5 New Mexico 11.4
               <br/>
               6 Michigan 12.1
               <br/>
               7 Nevada 12.2
               <br/>
               8 Florida 15.4
               <br/>
               &gt; dbRemoveTable(con, "arrests")
               <br/>
               &gt; dbDisconnect(con)
              </p>
              <p>
               CRAN上的RODBC包给支持ODBC 的数据库管理系统提供了接口。它可以广泛存在，并允许相同的R代码和不同的数据库管理系统连通。RODBC在Unix/Linux和Windows均可运行，并且几乎所有的数据库管理系统都支持ODBC。我们已经测试了Windows上的Microsoft SQL Server, Access, MySQL 和PostgreSQL，以及Linux上的MySQL, Oracle, PostgreSQL and SQLite等。
               <br/>
               ODBC是一个客户服务器系统，可以顺利的在Windows客户机上连接运行在Unix上的数据库管理系统，反之同样可以。
               <br/>
               在Windows上，通常都有对ODBC的支持，当前的版本可以从
               <a class="d4pbbc-url" href="http://www.microsoft.com/data/odbc/" rel="nofollow" target="_blank">
                http://www.microsoft.com/data/odbc/
               </a>
               上获取，作为MDAC的组成部分。在Unix/Linux上，你也许需要一个ODBC驱动管理器，比如unixODBC (
               <a class="d4pbbc-url" href="http://www.unixODBC.org" rel="nofollow" target="_blank">
                http://www.unixODBC.org
               </a>
               )或者iOBDC (
               <a class="d4pbbc-url" href="http://www.iODBC.org" rel="nofollow" target="_blank">
                http://www.iODBC.org
               </a>
               ) 以及一个数据库管理系统的驱动程序。
               <br/>
               在Windows下不仅提供了对数据库管理系统的支持，而且提供了对Excel（‘.xls’）数据表、Dbase(‘.dbf’)文件，甚至文本文件的支持（这些应用都不再用安装了）。
               <br/>
               并发的连接是可能的。通过odbcConnect或者odbcDriverConnect函数调用 (Windows界面下，允许通过对话框操作)打开一个数据库连接，返回一个随后对数据库进行操作的句柄。打印一个数据库连接可以提供ODBC连接的一些细节，odbcGetInfo函数可以提供客户机和服务器的细节。
               <br/>
               通过调用close或者odbcClose函数可以关闭一个数据库连接，也可以在一个R流程结束时又没有R的对象引用其时自动的关闭（会给出一个警告）。
               <br/>
               一个数据库连接中各个表格的细节可以通过sqlTables函数得到。
               <br/>
               函数sqlSave把一个R的数据框写入到数据库的一个表中，sqlFetch函数把数据库中的一个表写到R中的一个数据框。
               <br/>
               一个SQL查询可以通过sqlQuery函数发送到数据库中。这样返回结果到一个R的数据框中。（sqlCopy发送一个查询到数据库中，并且将结果保存为数据库中的一个数据表。）
               <br/>
               下面时一个使用PostgreSQL的例子，ODBC把列和数据框名字转化为小写。我们将使用预先建好的数据框testdb，在unixODBC环境下把DSN（数据源名称）保留在’~/.odbc.ini’文件中。相同的代码可以使用MyODBC在Linux或者Windows（这时候MySQL也把名字转化为小写）下针对MySQL使用。在Windows操作环境下，DSN在“控制面板”中操作（2000/xp版本中，“ODBC数据源”在管理工具选项中）。
              </p>
              <p>
               &gt; library(RODBC)
               <br/>
               ## 把命名改为小写
               <br/>
               &gt; channel &lt;-odbcConnect("testdb", uid="ripley", case="tolower")
               <br/>
               ## 把一个数据框写入到数据库中
               <br/>
               &gt; data(USArrests)
               <br/>
               &gt; sqlSave(channel, USArrests, rownames = "state", addPK = TRUE)
               <br/>
               &gt; rm(USArrests)
               <br/>
               ## 给出数据库中的数据表
               <br/>
               &gt; sqlTables(channel)
               <br/>
               TABLE_QUALIFIER TABLE_OWNER TABLE_NAME TABLE_TYPE REMARKS
               <br/>
               1 usarrests TABLE
               <br/>
               ## 展示数据库中数据表的内容
               <br/>
               &gt; sqlFetch(channel, "USArrests", rownames = "state")
               <br/>
               murder assault urbanpop rape
               <br/>
               Alabama 13.2 236 58 21.2
               <br/>
               Alaska 10.0 263 48 44.5
               <br/>
               …
              </p>
              <p>
               ## 一个SQL查询
               <br/>
               &gt; sqlQuery(channel, "select state, murder from USArrests where rape &gt; 30 order by murder")
               <br/>
               state murder
               <br/>
               1 Colorado 7.9
               <br/>
               2 Arizona 8.1
               <br/>
               3 California 9.0
               <br/>
               4 Alaska 10.0
               <br/>
               5 New Mexico 11.4
               <br/>
               6 Michigan 12.1
               <br/>
               7 Nevada 12.2
               <br/>
               8 Florida 15.4
               <br/>
               ## 移除数据库中的数据表
               <br/>
               &gt; sqlDrop(channel, "USArrests")
               <br/>
               ## 关闭连接
               <br/>
               &gt; odbcClose(channel)
              </p>
              <p>
               下面是一个Windows下通过ODBC使用Excel电子表格的例子，我们可以通过如下方式读取电子表格：
               <br/>
               &gt; library(RODBC)
               <br/>
               &gt; channel &lt;-odbcConnectExcel("bdr.xls")
               <br/>
               ## 给出电子表格
               <br/>
               &gt; sqlTables(channel)
               <br/>
               TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE     REMARKS
               <br/>
               1     C:\\bdr     NA         Sheet1$ SYSTEM         TABLE            NA
               <br/>
               2     C:\\bdr    NA         Sheet2$ SYSTEM         TABLE             NA
               <br/>
               3     C:\\bdr     NA         Sheet3$ SYSTEM         TABLE             NA
               <br/>
               4     C:\\bdr     NA         Sheet1$Print_Area     TABLE             NA
               <br/>
               ## 读取sheet1的内容
               <br/>
               &gt; sh1 &lt;-sqlFetch(channel, "Sheet1")
               <br/>
               &gt; sh1 &lt;-sqlQuery(channel, "select * from [Sheet1$]")
              </p>
              <p>
               请注意sqlTables和sqlFetch函数数据表的不同之处，sqlFetch可以给出差异。
               <br/>
               ODBC和Excel的接口是只读的，你不能改变电子表格中的数据。
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-205373">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2006年8月3日 上午10:20
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/842/#post-205373">
               2 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-205373 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-842 bbp-reply-position-2 user-id-123 topic-author post-205373 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/123/" rel="nofollow" title="查看abel的档案">
               <img src="http://sdn.geekzu.org/avatar/60dea4c8a3f2115785ea7668a3654b2d?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/123/" rel="nofollow" title="查看abel的档案">
               abel
              </a>
              <br/>
              <div class="bbp-author-role">
               版主
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               我会陆续加入一些注解，结合个人使用经验做一些简单的说明，欢迎大家来Email讨论。不过似乎论坛上没法粘贴word文档中的注解，如果能已上传附件的格式莱操作就好了。
              </p>
              <p>
               R-lang也做了翻译工作的初步准备，不过难度似乎挺大的，另外R-exts翻译难度也挺大的，需要比较多的计算机知识，我缺乏这方面的实际经验，存在一些困难。
               <br/>
               如果有人能把FAQ翻译过来就好了，FAQ可以说是一种类似百科全书的简要说明，可以为学习提供很好的说明和释疑工作。
              </p>
              <p>
               btw：
               <br/>
               我把
               <a class="d4pbbc-url" href="http://cos.name/cn/topic/842/www.magnsoftbi.com/forum" rel="nofollow" target="_blank">
                www.magnsoftbi.com/forum
               </a>
               的密码弄丢了，麻烦谁有帐号的帮我也转贴到那边的R论坛上去吧。万分感谢。
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-205375">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2006年8月3日 上午10:48
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/842/#post-205375">
               3 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-205375 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-842 bbp-reply-position-3 user-id-1 post-205375 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/1/" rel="nofollow" title="查看谢益辉的档案">
               <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/1/" rel="nofollow" title="查看谢益辉的档案">
               谢益辉
              </a>
              <br/>
              <div class="bbp-author-role">
               站长
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               可以把原文档发给我，谢谢
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-205377">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2006年8月3日 上午11:57
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/842/#post-205377">
               4 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-205377 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-842 bbp-reply-position-4 user-id-1 post-205377 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/1/" rel="nofollow" title="查看谢益辉的档案">
               <img src="http://sdn.geekzu.org/avatar/1022d8e6ebc94e8f6bca9a86cebe312a?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/1/" rel="nofollow" title="查看谢益辉的档案">
               谢益辉
              </a>
              <br/>
              <div class="bbp-author-role">
               站长
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               magnsoftbi那边已经帮你转了。密码丢了可以重新找回来的：）
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-205510">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2006年8月5日 下午1:59
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/842/#post-205510">
               5 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-205510 -->
            <div class="odd bbp-parent-forum-999 bbp-parent-topic-842 bbp-reply-position-5 user-id-336 post-205510 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               <img src="http://sdn.geekzu.org/avatar/6ca0529d22d1bf25a1e5cee3af3456f9?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/336/" rel="nofollow" title="查看刘思喆的档案">
               刘思喆
              </a>
              <br/>
              <div class="bbp-author-role">
               版主
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               提醒一下:甲骨文的odbc驱动不能用windows的那套,只能单独安装
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
            <div class="bbp-reply-header" id="post-205514">
             <div class="bbp-meta">
              <span class="bbp-reply-post-date">
               2006年8月5日 下午2:28
              </span>
              <a class="bbp-reply-permalink" href="http://cos.name/cn/topic/842/#post-205514">
               6 楼
              </a>
              <span class="bbp-admin-links">
              </span>
             </div>
             <!-- .bbp-meta -->
            </div>
            <!-- #post-205514 -->
            <div class="even bbp-parent-forum-999 bbp-parent-topic-842 bbp-reply-position-6 user-id-159 post-205514 reply type-reply status-publish hentry">
             <div class="bbp-reply-author">
              <a class="bbp-author-avatar" href="http://cos.name/cn/profile/159/" rel="nofollow" title="查看张巍的档案">
               <img src="http://sdn.geekzu.org/avatar/e537f5509173e1f93434ceb7c956a13a?s=80&amp;d=monsterid&amp;r=g"/>
              </a>
              <br/>
              <a class="bbp-author-name" href="http://cos.name/cn/profile/159/" rel="nofollow" title="查看张巍的档案">
               张巍
              </a>
              <br/>
              <div class="bbp-author-role">
               普通会员
              </div>
             </div>
             <!-- .bbp-reply-author -->
             <div class="bbp-reply-content">
              <p>
               粗略的看了一下，有个地方讲到R流程，是不是R session？
               <br/>
               session这个东西不太好翻译，比较通用的是译作会话。
              </p>
              <p>
               其他的还没怎么看，这个东西没用过，而且最近事情也多
              </p>
             </div>
             <!-- .bbp-reply-content -->
            </div>
            <!-- .reply -->
           </li>
           <!-- .bbp-body -->
           <li class="bbp-footer">
            <div class="bbp-reply-author">
             作者
            </div>
            <div class="bbp-reply-content">
             帖子
            </div>
            <!-- .bbp-reply-content -->
           </li>
           <!-- .bbp-footer -->
          </ul>
          <!-- #topic-842-replies -->
          <div class="bbp-pagination">
           <div class="bbp-pagination-count">
            查看 6 个帖子 - 1 到 6（总计 6 个）
           </div>
           <div class="bbp-pagination-links">
           </div>
          </div>
          <div class="bbp-no-reply" id="no-reply-842">
           <div class="bbp-template-notice">
            <p>
             您必须先登录才能回复该主题。
            </p>
           </div>
          </div>
         </div>
        </div>
        <!-- .entry-content -->
        <footer class="entry-meta">
        </footer>
        <!-- .entry-meta -->
       </article>
       <!-- #post -->
       <div class="comments-area" id="comments">
       </div>
       <!-- #comments -->
      </div>
      <!-- #content -->
     </div>
     <!-- #primary -->
     <div class="sidebar-container" id="tertiary" role="complementary">
      <div class="sidebar-inner">
       <div class="widget-area">
        <aside class="widget bbp_widget_login" id="bbp_login_widget-2">
         <h3 class="widget-title">
          登录
         </h3>
         <form action="http://cos.name/cn/wp-login.php" class="bbp-login-form" method="post">
          <fieldset>
           <legend>
            登录
           </legend>
           <div class="bbp-username">
            <label for="user_login">
             用户名:
            </label>
           </div>
           <div class="bbp-password">
            <label for="user_pass">
             密码:
            </label>
           </div>
           <div class="bbp-remember-me">
            <label for="rememberme">
             记住用户名
            </label>
           </div>
           <div class="bbp-submit-wrapper">
            <button class="button submit user-submit" id="user-submit" name="user-submit" tabindex="104" type="submit">
             登录
            </button>
           </div>
           <div class="bbp-login-links">
            <a class="bbp-register-link" href="http://cos.name/cn/wp-login.php?action=register" title="注册">
             注册
            </a>
            <a class="bbp-lostpass-link" href="http://cos.name/cn/wp-login.php?action=lostpassword" title="忘记密码">
             忘记密码
            </a>
           </div>
          </fieldset>
         </form>
        </aside>
        <aside class="widget widget_text" id="text-7">
         <h3 class="widget-title">
          搜索
         </h3>
         <div class="textwidget">
          <form action="http://www.google.com/search" id="bbp-search-form" method="get" onsubmit="Gsitesearch(this)" role="search">
           <div>
           </div>
          </form>
          <form id="bbp-search-form-baidu" onsubmit="g(this)" role="search">
           <div>
           </div>
          </form>
         </div>
        </aside>
        <aside class="widget widget_text" id="text-2">
         <h3 class="widget-title">
          新鲜事
         </h3>
         <div class="textwidget">
          <ul>
           <li>
            <a href="http://cos.name/cn/topics/">
             最新帖子
            </a>
           </li>
           <li>
            <a href="http://cos.name/cn/view/popular/">
             最热门主题
            </a>
           </li>
           <li>
            <a href="http://cos.name/cn/view/no-replies/">
             消灭零回复
            </a>
           </li>
          </ul>
         </div>
        </aside>
        <aside class="widget widget_text" id="text-3">
         <h3 class="widget-title">
          RSS订阅
         </h3>
         <div class="textwidget">
          <ul>
           <li>
            <img src="http://cos.name/wp-includes/images/rss.png"/>
            <a href="http://cos.name/cn/topics/feed/">
             所有主题
            </a>
           </li>
           <li>
            <img src="http://cos.name/wp-includes/images/rss.png"/>
            <a href="http://cos.name/cn/forums/feed/">
             所有帖子
            </a>
           </li>
          </ul>
         </div>
        </aside>
       </div>
       <!-- .widget-area -->
      </div>
      <!-- .sidebar-inner -->
     </div>
     <!-- #tertiary -->
    </div>
    <!-- #main -->
    <footer class="site-footer" id="colophon" role="contentinfo">
     <div class="site-info">
      版权所有 © 2014 统计之都 | 由
      <a href="http://wordpress.org/">
       WordPress
      </a>
      构建 | 主题修改自
      <a href="http://wordpress.org/themes/twentythirteen">
       Twenty Thirteen
      </a>
     </div>
     <!-- .site-info -->
    </footer>
    <!-- #colophon -->
   </div>
   <!-- #page -->
  </div>
 </body>
</html>